import java.sql.SQLOutput;
import java.util.Random;
import java.util.Scanner;

public class homework {
    public static void main(String[] args) {
        /**
         * 1.打印输出10~100之间所有能同时被5和9整除的整数
         */
//        for(int i=10;i<=100;i++){
//            if (i%5==0&&i%9==0){
//                System.out.println("能同时被5和9整除的数为："+i);
//            }
//        }

        /**
         * 2.有数列：9，99，999，9999...，编程计算前10项值的和
         */
//        long num = 0;
//        long sum = 0;
//        for (int i = 1; i <= 10; i++) {//定义10的循环
//
//            num = num * 10 + 9;
////            System.out.println(num);
//            sum+=num;
//
//        }
//        System.out.println(sum);

        /**
         * 3.输出所有的水仙花数（各位数字立方之和等于数本身的三位整数）并输出。
         */
//        for(int i=100;i<=999;i++){
//            int b = i/100;
//            int s = i/10%10;
//            int g = i%10;
//            if(b*b*b+s*s*s+g*g*g == i){
//                System.out.println("水仙花数为"+i);
//            }
//        }
        /**
         * 4.2006年培养学员8万人，每年增长25%，请问按此增长速度，到哪一年培训学员人数将达到20万人？
         */
//        double year=2006;
//        double x=80000;
//        while(x<200000){
//            x=x*(1+0.25);
//            year++;
//        }
//        System.out.println(year+"年,人数将达到20万");

        /**
         * 5.用户输入任意一个整数，求各位数字之和。
         */
//        Scanner sc = new Scanner(System.in);
//        System.out.println("请输入一个数字");
//        long num = sc.nextLong();
//        long sum = 0;
//        while(num>0){
//            sum += num%10;
//            num = num/10;
//        }
//        System.out.println(sum);

        /**
         * 6.在马克思手稿中有一道趣味的数学问题：一共有30个人，
         * 可能包括男人，女人和小孩。他们在一家饭馆吃饭共花了50先令，其中每个男人花3先令，
         * 每个女人花2先令，每个小孩花1先令。请问男人、女人和小孩各几人？
         * 请编写一个程序来计算。
         */
//        for(int man = 0;man<=30;man++){
//            for(int woman = 0;woman<=30;woman++){
//                for(int child = 0;child<=30;child++){
//                    if(man+woman+child==30 && 3*man+2*woman+1*child==50){
//                        System.out.println("男人的数量是："+man);
//                        System.out.println("女人的数量是："+woman);
//                        System.out.println("小孩的数量是："+child);
//                    }
//                }
//            }
//        }

        /**
         * 7.现有一个电视商品竞猜活动
         * 活动规则：
         * 随机出现一个电视的价格（2000-10000之间），
         * 用户去竞猜价格，如果在5次内猜对价格，便可获得此商品。
         * （超过5次，显示”很可惜，你没有获得奖品，竞猜结束。”，
         * 在5次内猜对的话，显示”恭喜你，获得了此奖品。”）。
         */
//        int price_unkonw;
//        int max = 10000;
//        int min = 2000;
//        Random random = new Random();
//        int price = random.nextInt(max) % (max - min + 1) + min; // 产生2000-10000的随机数
//        System.out.println("电视价格:"+price);
//
//        for (int i = 1; i <= 5; i++) {
//            System.out.println("请输入猜测的电视价格 :");
//            Scanner in = new Scanner(System.in);
//            price_unkonw = in.nextInt();
//            if (price_unkonw == price) {
//                System.out.println("恭喜你，获得了此奖品");
//                return;
//            } else if (i < 5){
//                System.out.println("价格错误，你还有" + (5 - i) + "次猜测机会");}
//            else{
//                System.out.println("很可惜，你没有获得奖品，竞猜结束");}
//        }
        /**
         * 8.输出1~1000以内质数(只能被1或本身整除的数)
         */
//        int j;
//        boolean flag;
//        for (int i = 2; i < 1000; i++) {
//            flag = false;
//            for (j = 2; j < i / 2; j++) {
//                if (i % j == 0) {
//                    flag = true;
//                    break;
//                }
//            }
//            if (flag == false) {
//                System.out.print(i + " ");
//            }
//        }

//        CFB();
//        SJX();
//        SJ();
//        System.out.println(Log("admin","123456"));
//        System.out.println(calc(10, 20, "*"));

        System.out.println(fruit(5,"苹果"));
//            ZS(2);
//        System.out.println(SXHS());
//        bj(5,6,7);

    }
    /**
     * 9.写一个方法，打印九九乘法表
     */
    public static void CFB(){
        for(int i=1;i<10;i++){
            for(int j = 1;j<=i;j++){
                System.out.print(j+"*"+i+"="+(i*j)+"\t");
            }
            System.out.println();
        }
    }

    /**
     * 11.写一个方法，输入三角形的三条边，输出是否能构成三角形
     */
    public static void SJX(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入边a的长度：");
        int a =sc.nextInt();
        System.out.println("请输入边b的长度：");
        int b =sc.nextInt();
        System.out.println("请输入边c的长度：");
        int c =sc.nextInt();
        if (a+b>c && a+c>b && b+c>a){
            System.out.println("可以构成三角形");
        } else {
            System.out.println("无法构成三角形");
        }
    }

    /**
     * 12.写一个方法，随机一个数字，并返回
     */
        public static double SJ(){
            Random random = new Random();
            int SJ = random.nextInt(1000000);
            System.out.println(SJ);
            return SJ;
        }

    /**
     * 13.写一个方法，传入用户名和密码，返回是否登录成功(默认正确的用户名密码为 admin和123456)
     */
    public static String Log(String username,String password) {
        if (username == "admin"  && password =="123456"){
                    return "可以登录";
        }else {
                    return "用户名或者密码错误";
        }
    }

    /**
     * 14.写一个方法，传入两个数字，并传入一个类型(例如：传入+号就做加法运算，*号就是乘法运算)。返回两个数计算的结果
     */
    public static double calc(double a, double b, String type) {
        double result = 0;
        switch (type) {
            case "+":
                result = a + b;
                break;
            case "-":
                result = a - b;
                break;
            case "*":
                result = a * b;
                break;
            case "/":
                result = a / b;
                break;
        }
        return result;
    }
    /**
     * 15.定义一个方法，计算商品的价格(参数1：数量 参数2：类型 苹果 3.5 香蕉 4 橘子 5)
     */
    public static double fruit(int num, String b) {
        double sum = 0;
        switch (b) {
            case "苹果":
                sum = num * 3.5;
                break;
            case "香蕉":
                sum = num * 4;
                break;
            case "橘子":
                sum = num * 5;
                break;
        }
        return sum;
    }



    /**
     * 16.定义一个方法，传入一个数字，判断是否是质数，返回boolean
     */
    public static boolean ZS(int num){
        int count = 0;
        for(int i=2;i<num;i++){
            if(num%i==0){
                count++;//计数器加1来记录它被它的因子除了多少次
            }
        }
        if(count == 0){
            return true;
        }else{
            return false;
        }

    }

    /**
     * 17.定义一个方法，求1000以内，最大的水仙花数,并返回
     */
    public static int SXHS(){
        int SXHS = 0;
        for(int i=100;i<=999;i++){
            int b = i/100;
            int s = i/10%10;
            int g = i%10;

            if(b*b*b+s*s*s+g*g*g == i){
//                System.out.println("水仙花数为"+i);
                    SXHS=i;
            }
        }
        return SXHS;
    }

    /**
     * 18.定义一个方法，求100以内，所有的质数并输出
     */
    public static void ZS() {
        int j;
        boolean flag;
        for (int i = 2; i < 100; i++) {
            flag = false;
            for (j = 2; j < i / 2; j++) {
                if (i % j == 0) {
                    flag = true;
                    break;
                }
            }
            if (flag == false) {
                System.out.print(i + " ");
            }
        }
    }

    /**
     *19.定义一个方法，传入三个数，输出最大的那个数，最小的那个数
     */

    public static void bj(int a,int b,int c) {
        int max = a;
        int min = a;
        if(b >max) max = b;
        if(c >max) max = c;
        if(b< min) min = b;
        if(c< min) min = c;
        System.out.println("最大值是：" + max);
        System.out.println("最小值是：" + min);
    }

}

